package jiuxing

type Msg03 struct {
	Tm                 []byte
	Tp                 string
	HwVer              string
	SoftVer            string
	SecHwVer           string
	SecSoftVer         string
	ModuleTp           byte
	ModuleSum          byte
	SingModulePwr      byte
	BillingVersion     uint16
	StartNum           uint16
	PowerOnBegin       []byte
	HeartBeatPeriod    uint16
	HeartBeatTimeout   byte
	RemoteSignalPeriod uint16
	TelemetryPeriod    uint16
	WorkInforPeriod    uint16
	BMSInfoPeriod      uint16
	BMVPeriod          uint16
	BMTPersiod         uint16
	Lat                byte
	Long               byte
}

func (msg *Msg03) Decode(b []byte) {
	item := NewByteArray(b)
	msg.Tm = b[0:6]
	msg.Tp = GetBcdString(b[6:22])
	msg.HwVer = GetVersion(b[22:24])
	msg.SoftVer = GetVersion(b[24:26])
	msg.SecHwVer = GetBcdString(b[26:28])
	msg.SecSoftVer = GetBcdString(b[28:30])
	msg.ModuleTp = b[30]
	msg.ModuleSum = b[31]
	msg.SingModulePwr = b[32]
	msg.BillingVersion = item.GetUint16(33)
	msg.StartNum = item.GetUint16(35)
	msg.PowerOnBegin = item.GetTimeArray(37)
	msg.HeartBeatPeriod = item.GetUint16(43)
	msg.HeartBeatTimeout = b[45]
	msg.RemoteSignalPeriod = item.GetUint16(46)
	msg.TelemetryPeriod = item.GetUint16(48)
	msg.WorkInforPeriod = item.GetUint16(50)
	msg.BMSInfoPeriod = item.GetUint16(52)
	msg.BMVPeriod = item.GetUint16(54)
	msg.BMTPersiod = item.GetUint16(56)
	// msg.Lat = item.GetUint8(21)
}
